package net.dengzixu.java.homework.period39.homework2;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @author Deng Zixu <admin@dengzixu.com>
 */
public class Homework {
    public static void main(String[] args) {
        Homework hw = new Homework();

        var map = hw.newStadiumfieldList();

        hw.getStadiumfield(map);
    }

    public Map<String, String[]> newStadiumfieldList() {
        // HashMap是无序的, 为了保证顺序, 这里采用 LinkedHashMap
        // 没记错的话 LinkedHashMap 底层实现应该是 双向链表
        Map<String, String[]> map = new LinkedHashMap<>();

        // Map<String, String[]> map = new HashMap<>();

        String[] badmintonField = {"羽毛球场地 1", "羽毛球场地 2", "羽毛球场地 3", "羽毛球场地 4", "羽毛球场地 5"};
        String[] tableTennisField = {"乒乓球场地 1", "乒乓球场地 2", "乒乓球场地 3", "乒乓球场地 4"};
        String[] basketballField = {"篮球场地 1", "篮球场地 2", "篮球场地 3"};

        map.put("羽毛球", badmintonField);
        map.put("乒乓球", tableTennisField);
        map.put("篮  球", basketballField);

        return map;
    }

    public void getStadiumfield(Map<String, String[]> map) {
        // 获取 Map 的大小
        System.out.printf("场地类型为 %d 种\n", map.size());

        // 第一层遍历，获取 Map 中所有的 key
        for (Map.Entry<String, String[]> entry : map.entrySet()) {
            System.out.printf("%s : 场地数量为 %d 个, 分别为: ", entry.getKey(), entry.getValue().length);

            // 第二层遍历, 遍历 Array
            for (String s : entry.getValue()) {
                System.out.print(" " + s + " ");
            }

            // 换行
            System.out.println();
        }
    }
}
